package collection;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 队列 java.util.Queue接口
 * Queue接口继承自Collection,队列也是集合的一种,因此队列可以保存一组
 * 元素,但是存取元素必须遵循先进先出原则.
 * 常用实现类:java.util.LinkedList
 */
public class QueueDemo {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();
        /*
            boolean offer(E e)
            入队操作,将元素添加到队列末尾
         */
        queue.offer("one");
        queue.offer("two");
        queue.offer("three");
        queue.offer("four");
        queue.offer("five");
        System.out.println(queue);

        /*
            E poll()
            出队操作,获取并删除对首元素
         */
        String str = queue.poll();
        System.out.println(str);
        System.out.println(queue);

        /*
            E peek()
            引用对首元素,获取该元素后并不会从队列中删除
         */
        str = queue.peek();
        System.out.println(str);
        System.out.println(queue);

        int size = queue.size();
        System.out.println("size:"+size);

        //遍历并不会做出队操作
        for(String e : queue){
            System.out.println(e);
        }
        System.out.println(queue);


        //使用poll遍历(一次性的)
        while(queue.size()>0){
            String s = queue.poll();
            System.out.println(s);
        }
        System.out.println(queue);
    }
}





